package com.houweishi.module.adjustment.domain;

import com.houweishi.common.annotation.Excel;
import com.houweishi.common.core.domain.BaseEntity;
import com.houweishi.module.copy.domain.BizCopy;
import com.houweishi.module.record.domain.BizApprovalRecord;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.math.BigDecimal;
import java.util.List;

/**
 * 职位，薪资申请单对象 oa_adjustment
 * 
 * @author houweishi
 * @date 2023-02-21
 */
@Data
public class OaAdjustment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long adjustmentId;

    /** 用户id */
//    @Excel(name = "用户id")
    private Long userId;

    /** 用户名(申请人姓名） */
    @Excel(name = "用户名(申请人姓名）")
    private String username;

    /** 部门id */
//    @Excel(name = "部门id")
    private Long deptId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 现职位id */
//    @Excel(name = "现职位id")
    private Long postId;

    /** 现职位 */
    @Excel(name = "现职位")
    private String position;

    /** 员工id */
//    @Excel(name = "员工id")
    private Long staffId;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    private String staffName;

    /** 目标职位id */
//    @Excel(name = "目标职位id")
    private Long targetPostId;

    /** 目标职位 */
    @Excel(name = "目标职位")
    private String targetPosition;

    /** 目标薪资 */
    @Excel(name = "目标薪资")
    private BigDecimal targetSalary;

    /** 申请理由 */
    @Excel(name = "申请理由")
    private String applicationReason;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 所属租户 */
//    @Excel(name = "所属租户")
    private Long tenantId;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 是否使用模板（1是 2否） */
    @Excel(name = "是否使用模板")
    private String typeStatus;

    /** 模板id */
//    @Excel(name = "模板id")
    private Long typeId;

    /** 模板名称 */
    @Excel(name = "模板名称")
    private String typeName;

    /** 审批人id(多个） */
    private String approver;

    /** 审批人姓名(多个） */
    private String approverName;

    /** 申请表类型id */
    @Excel(name = "申请表类型id")
    private Long subscribePatternId;

    /** 申请表类型名称 */
    @Excel(name = "申请表类型名称")
    private String subscribePatternName;

    /** 抄送人id */
//    @Excel(name = "抄送人id")
    private String copyerId;

    /** 抄送人姓名 */
    @Excel(name = "抄送人姓名")
    private String copyerName;

    /** 流水单号 */
    @Excel(name = "流水单号")
    private String serialNum;


    /** 审批记录列表 */
    private List<BizApprovalRecord> approvalRecordList;

    /** 抄送记录列表 */
    private List<BizCopy> bizCopyList;


    public void setAdjustmentId(Long adjustmentId) 
    {
        this.adjustmentId = adjustmentId;
    }

    public Long getAdjustmentId() 
    {
        return adjustmentId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public String getSerialNum() {
        return serialNum;
    }

    public void setSerialNum(String serialNum) {
        this.serialNum = serialNum;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }
    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }
    public void setDeptName(String deptName) 
    {
        this.deptName = deptName;
    }

    public String getDeptName() 
    {
        return deptName;
    }
    public void setPostId(Long postId) 
    {
        this.postId = postId;
    }

    public Long getPostId() 
    {
        return postId;
    }
    public void setPosition(String position) 
    {
        this.position = position;
    }

    public String getPosition() 
    {
        return position;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setStaffName(String staffName) 
    {
        this.staffName = staffName;
    }

    public String getStaffName() 
    {
        return staffName;
    }
    public void setTargetPostId(Long targetPostId) 
    {
        this.targetPostId = targetPostId;
    }

    public Long getTargetPostId() 
    {
        return targetPostId;
    }
    public void setTargetPosition(String targetPosition) 
    {
        this.targetPosition = targetPosition;
    }

    public String getTargetPosition() 
    {
        return targetPosition;
    }
    public void setTargetSalary(BigDecimal targetSalary) 
    {
        this.targetSalary = targetSalary;
    }

    public BigDecimal getTargetSalary() 
    {
        return targetSalary;
    }
    public void setApplicationReason(String applicationReason) 
    {
        this.applicationReason = applicationReason;
    }

    public String getApplicationReason() 
    {
        return applicationReason;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("adjustmentId", adjustmentId)
                .append("userId", userId)
                .append("username", username)
                .append("deptId", deptId)
                .append("deptName", deptName)
                .append("postId", postId)
                .append("position", position)
                .append("staffId", staffId)
                .append("staffName", staffName)
                .append("targetPostId", targetPostId)
                .append("targetPosition", targetPosition)
                .append("targetSalary", targetSalary)
                .append("applicationReason", applicationReason)
                .append("status", status)
                .append("tenantId", tenantId)
                .append("delFlag", delFlag)
                .append("typeStatus", typeStatus)
                .append("typeId", typeId)
                .append("typeName", typeName)
                .append("approver", approver)
                .append("approverName", approverName)
                .append("subscribePatternId", subscribePatternId)
                .append("subscribePatternName", subscribePatternName)
                .append("copyerId", copyerId)
                .append("copyerName", copyerName)
                .append("serialNum", serialNum)
                .append("approvalRecordList", approvalRecordList)
                .append("bizCopyList", bizCopyList)
                .toString();
    }
}
